home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
010
/
bowl32.arc
/
BOWL30.DOC
next >
Wrap
Text File
|
1987-07-27
|
25KB
|
627 lines
.space1
.PAGE
.LINES60
.space1
BOWLING LEAGUE SECRETARY'S SYSTEM
PROGRAM DESCRIPTION/OPERATIONS MANUAL
SEPTEMBER 1982
.EJECT
.space1
TABLE OF CONTENTS
System Overview . . . . . . . . . . . . . . . . . . 1
File Descriptions . . . . . . . . . . . . . . . . . 2
Program Descriptions . . . . . . . . . . . . . . .10
Setup and Operations . . . . . . . . . . . . . . .14
All questions about the system may be directed to:
William W. Klaproth
1897 Joseph Drive
Moraga Ca. 94556
415/376-0708
B/O GPC
Oakland Ca.
Tie 8/648-5337
.eject
.space1
.TITLEA,3, BOWLING LEAGUE SECRETARY'S SYSTEM
.page3,78,#1
SYSTEM OVERVIEW
This system is comprised of twelve programs, representing
over 1600 lines of code. The system is written in ADVANCED BASIC
for a 64K IBM Personal Computer with one or two disks and printer.
The system is highly generalized, permitting initialization
of most items including:
League Name
Team Configuration
Handicap basis
Schedule
As distributed, the system can handle 18 teams, up to 5
bowlers per team, and up to a 50 week season. The 18 team limit
is a function of the 80 character print line width used to print
schedules. If this function is appropriately modified, or not
used, a much larger number of teams can be accommodated. The
actual limit is a function of diskette capacity, bowlers per team,
and number of weeks.
Programs are provided to initialize all master files, enter
scores and print standings (weekly), as well as prepare Book
average listings, final team/bowler standings, and display or
print individual team/bowler record sheets.
The system is designed to be used on either a one or two disk
drive system. Program selection is controlled by a master MENU
program. The program diskette is assumed to be in the A drive.
Except for the smallest leagues, you will need to maintain all
bowler files on the B drive. In a single drive environment, DOS
will provide prompts to insert the appropriate diskette. Just
remember - Drive A = PROGRAMS; Drive B = FILES.
.eject
.space1
SUMMARY OF FILE USAGE
*
* File 1 2 3 4 5 6
*
* TEAMS. BOWLERS. TEAM. BOWLER. HISCORES. SCHEDULE.
Program * HDR HDR DET .DET DET DET
---------- ----- ------ ---- ----- ------ ------
CREATE C C C C
SCHEDULE C
CHANGE U U
SCORES U U U U C
RECAP I I I I I I
RECORDD I I I I
RECORDP I I I I
SORTFILE I I I I
FINAL I I
PRINT I I
DETAIL I I I
The Table above contains a summary of file creation and
usage. All bowling files are Random Files, and are written in
packed binary format. In the table above, "C" indicates where a
file is created, "U" where it is updated, and "I" where it is used
as input.
The following pages contain more detailed information on each
file. The format column shows type of data representation:
I = Integer string
S = Single precision value string
D = Double precision value string
A = Character string
.eject
.space1
FILE DESCRIPTIONS
File # 1 - TEAMS.HDR (Team Header File)
From To Lgth Format Name Description
---- -- ---- ------ --------- -----------
RECORD NUMBER 1 - LEAGUE HEADER
1 2 2 I HDRID$ Header ID (Value="00")
3 32 30 A LEAGUE$ Name of League
33 34 2 I WEEKS$ Number of Weeks
35 36 2 I TEAMS$ Number of Teams
37 40 4 Not Used
41 42 2 I BWLPERTM$ Bowlers per Team
43 44 2 I NXTID$ Next Avail. ID
45 46 2 I HCPBASE$ Handicap Base
47 50 4 S HCPPCNT$ Handicap %
51 64 14 Not Used
RECORD 2 THRU nn - TEAM HEADERS
1 2 2 I TM$ Team Number
3 32 30 A NAM$ Team Name
33 34 2 I RCNT$ Number of Detail Records on File
35 36 2 I GAM$ Team Games Bowled
37 40 4 S PINS$ Total Team Pins
41 42 2 I AVG$ Team Average
43 44 2 I HIG$ High Team Game (Scratch)
45 46 2 I HIS$ High Team Series (Scratch)
47 50 4 S PTSW$ Total Team Points Won
51 54 4 S PTSL$ Total Team Points Lost
55 56 2 I B1ID$ ID Number of 1st Bowler
57 58 2 I B2ID$ ID Number of 2nd Bowler
59 60 2 I B3ID$ ID Number of 3rd Bowler
61 62 2 I B4ID$ ID Number of 4th Bowler
63 64 2 I B5ID$ ID Number of 5th Bowler
Record #1 on this file is the league header, which contains
the variable data for the entire league. The NXTID$ field
indicates the next available bowler ID and is used by the CHANGE
program when adding new bowler records. This field cannot
otherwise be updated.
Records 2 thru n contain Team header data. RCNT$ is a
control filed and indicates the number of detail records on the
TEAM.DET file. There is one header record per team. Its
relative record address is the Team number + 1.
The ID numbers of bowlers assigned to each team are stored
in the BxID$ fields which begin at position 55. Bowlers can be
shifted among teams by changing these fields and the BTM$
field in the BOWLERS.HDR record. (See description for file #2).
NOTE: Total team pins (37-40) represents total pincount
(including handicap). If scratch total pins is preferred, the
logic affecting this field may be found at lines 2050-2180 in the
SCORES program.
.eject
.space1
FILE DESCRIPTIONS
File # 2 - BOWLERS.HDR (Bowler Header File)
From To Lgth Format Name Description
---- -- ---- ------ --------- -----------
1 2 2 I BBO$ Bowler Number
3 32 30 A BNAM$ Bowler Name
33 34 2 I BRCNT$ Number of Detail Records on File
35 36 2 I BGAM$ Total Games Bowled
37 40 4 S BPINS$ Total Pins
41 42 2 I BAVG$ Average
43 44 2 I BHIG$ High Game (Scratch)
45 46 2 I BHIS$ High Series (Scratch)
47 48 2 I BHCP$ Handicap
49 50 2 I BHIGH$ High Handicap Game
51 52 2 I BHISH$ High Handicap Series
53 54 2 I BTM$ Bowlers Team Number
55 56 2 I GAM2$ Number of 200 Games
57 58 2 I SER5$ Number of 500 Series
59 60 2 I SER6$ Number of 600 Series
61 62 2 I CURSER$ Current (Last) Series
63 64 2 I AVGLSTYR$ Average Last Year
This file contains one record per bowler and is updated by
the SCORES program. BHCP$ is initialized to 0 by CREATE and
updated with handicap only if 21 or more games have been bowled.
The current series field (CURSER$) is also used to keep track of
consecutive absences.
BTM$ indicates which team the bowler is assigned to. For a
substitute, this field is 0. Bowlers can easily be shifted among
teams and/or sub status by changing this field, as well as the
Bowler ID fields (pos 55-64) of the TEAMS.HDR records. Refer to
the section on File Relationships later in this chapter for
additional information.
BRCNT$ is a control field and indicates the number of detail
records on the BOWLER.DET file.
.eject
.space1
FILE DESCRIPTIONS
File # 3 - TEAM.DET (Team Detail Records)
From To Lgth Format Name Description
---- -- ---- ------ --------- -----------
1 2 2 I DTM$ Team Number
3 4 2 I TMO$ Month
5 6 2 I TDAY$ Day
7 8 2 I TG1$ Team Game 1 Score
9 10 2 I TG2$ Team Game 2 Score
11 12 2 I TG3$ Team Game 3 Score
13 14 2 I TSER$ Team Series Score
15 16 2 I DPTSW$ Team Points Won
This file stores the weekly detail records for each team.
A randomizing routine is used to compute record addresses. Up to
50 weeks of detail records can be stored for each team. Game and
series scores stored in this file are handicap scores.
.eject
.space1
FILE DESCRIPTIONS
File # 4 - BOWLER.DET (Bowler Detail Records)
From To Lgth Format Name Description
---- -- ---- ------ --------- -----------
1 2 2 I DBO$ Bowler Number
3 4 2 I BMO$ Month
5 6 2 I BDAY$ Day
7 8 2 I BG1$ Game 1 Score
9 10 2 I BG2$ Game 2 Score
11 12 2 I BG3$ Game 3 Score
13 14 2 I BSER$ Series Score
15 16 2 I Not Used
This file contain weekly bowler detail records. A
randomizing routine is used to compute record address. Up to 50
weeks of scores can be stored for each bowler. All scores
recorded in this file are scratch scores.
.eject
.space1
FILE DESCRIPTIONS
File # 5 - HISCORES.DET (High Scores File)
From To Lgth Format Name Description
---- -- ---- ------ --------- -----------
1 2 2 I HBNO$ Bowler Number
3 4 2 I HG1$ Game 1 Score
5 6 2 I HG2$ Game 2 Score
7 8 2 I HG3$ Game 3 Score
9 10 2 I HSER$ Series Score
11 11 1 A HFLG1$ Game 1 Flag
12 12 1 A HFLG2$ Game 2 Flag
13 13 1 A HFLG3$ Game 3 Flag
14 14 1 A HFLGS$ Series Flag
15 16 2 I HCNT$ Flag Count
This file is created by SCORES and processed by RECAP. One
record is written for each bowler and contains the complete score
and flags indicating the following mentionable high scores:
200+ game
500+ series
any game 50 pins or more above average
The logic associated with this file is located between lines
1020-1390 in the SCORES program. The actual determination of
which scores to highlight is a function of the RECAP program.
.eject
.space1
File Descriptions
File # 6 - SCHEDULE.DET (Schedule File)
From To Lgth Format Name Description
---- -- ---- ------ --------- -----------
1 1 1 A STATUS$ Status (Reserved for future use
2 3 2 I WEEK$ Week number
4 5 2 I SMO$ Month
6 7 2 I SDY$ Day
8 75 68 A PRLINE$ Text line
This file is created at the begining of the season by the
SCHEDULE program and is processed weekly by RECAP. A free format
is provided so that in addition to team pairings, special messages
can be entered.
e.g. DATE\ LANE 1:2 3:4 5:6 7:8
----- ----- ----- ----- -----
11/17 5-7 3-6 1-8 4-2
11/24 Happy Thanksgiving - No bowling
11/31 2-3 5-7 8-6 4-1
12/06 P O S I T I O N R O U N D
.eject
.space1
FILE RELATIONSHIPS
TEAMS.HDR BOWLERS.HDR
Bowler Team
No No
+-----------------------------+
/-----------------> | 01 01 |
| +-----------------------------+
| /--------------> | 02 01 |
| | +-----------------------------+
| | /-----------> | 03 01 |
| | | +-----------------------------+
| | | /--------> | 04 01 |
Team | | | | +-----------------------------+
No Bowler ID's /-> | 05 02 |
+------------+--+--+--+---+ | +-----------------------------+
|01 01 02 03 04 ..| | .
+-------------------------+ | .
|02 05 06 07 08 ..| | .
+------------+------------+ | .
. \--------------/ .
. +-----------------------------+
. /--------> | 32 08 |
+---------------------+---+ +-----------------------------+
|08 29 30 31 32 ..| | 33 00 |
+-------------------------+ +-----------------------------+
.
.
The diagram above illustrates the control mechanism utilized
to assocaite bowlers with their teams.
On the left, is shown the TEAMS.HDR file. Assume that the
file has been initialized for eight teams, four bowlers per team.
Each team has a header record which includes the Bowler ID's of
its members. These ID's are direct pointers to the appropriate
record in the BOWLERS.HDR file. Thus, team one has bowlers 1
through 4, team two has bowlers 5 through 8, and so on up to team
eight, which points to bowlers 29 through 32. This is the way the
file would appear after initialilization and before any changes
were made.
The BOWLERS.HDR file is shown on the right. There is one
header record for each bowler which contains, among other data, a
pointer to the team with which the bowler is associated. Notice
that bowler numbers 33 and higher have 00 in the Team Number field.
This indicates that they are substitutes and not members of any
team. To replace a member who leaves, it is only necessary to
update the appropriate pointers in these files.
.eject
.space1
PROGRAMS INCLUDED IN THE SYSTEM
Program Description
------- ----------------------------------
A - Creation/Maintenance Programs
CREATE Initialize League Master Files
SCHEDULE Create Master Schedule File
CHANGE Master File Maintenance Program
B - Weekly Processing Programs
SCORES Enter Scores
RECAP Print Weekly Standings Sheet
C - Reporting Programs
RECORDD Display Team and Bowler Records
RECORDP Print Team and Bowler Records
SORTFILE Print ABC/WIBC Book Average Report (Name sequence)
FINAL Print Final Standings and Averages
D - Special Utility Programs
PRINT Print Utility - Team/Bowler Headers
DETAIL Print Utility - Team/Bowler Detail Records
.eject
.space1
PROGRAM DESCRIPTIONS
A. File Creation/Maintenance Programs
1. CREATE - This program is used to initialize the master
files at the begining of the season. The program first prompts
for LEAGUE variable data (League name, number of teams, bowlers
per team, handicap basis, and number of weeks in season). This
information is recorded on record #1 of the TEAMS.HDR file.
Next, the system will prompt for team and individual bowler
data, under control of the variables entered above. It is
suggested that the team name begin with the team number for ease
of identification on the various reports (e.g. "#1 - The Alley
Cats"). Bowler names should be entered as First-name Last-name
(e.g. Frank Brown). The SORTFILE program will automatically
reverse the names prior to sorting to achieve correct sequence.
Vacancies should be entered as "*VACANCY" in all caps. If the
bowler did not have an average last year, zero ("0") should be
entered. This will be the basis for computing improvement on the
final standings report. The bowlers 21 game average will be
automatically inserted if zero is entered here.
When all regular bowlers have been entered, the system will
prompt for substitute names and previous averages. A mask is
provided to facilitate entry of telephone number in the right-most
portion of the name field. When all bowler records have been
entered, "*END" should be keyed into the leftmost positions of the
name field to complete processing.
2. SCHEDULE - This program permits entry of the league
schedule. After initializing lane numbers, it prompts for dates
and schedules. Month and day are entered as numeric variables,
separated by a comma. The team pairings are entered as character
text. Appropriate spaces should be entered to align the data with
the Lane Numbers HEADING line. This approach also permits free
form text to be entered.
NOTE: With the current forms design, a maximum of 18 teams
can be accommodated on an 80 character print line.
3. CHANGE - The master maintenence program permits changes
to most of the data in the header records, as well as allowing new
bowler records to be added to the files. All bowlers added to the
file after initial creation should be added as substitutes. When
that person is placed on a team, the pointers controlling team
assignment should be changed using function number 2 - that is,
the team header record should be changed to point to the new
bolwer number, and the bowler's header record should be changed so
that team number is "0". See the File Descriptions section for
further information. Where a new bowler is filling a previous
"*VACANCY" position, the data can be entered directly into the
existing dummy record.
.EJECT
B. Weekly Processing Programs
1. SCORES - This program posts the weekly bowling results to
the master files. A prompt for month and day of bowling is issued
at the start of processing. These constants should be entered as
numeric values, separated by a comma (e.g. 11,24). This date is
used on the detail record files.
After date has been entered properly, the program will
present each team and its bowlers in sequence for posting of
scores. Any game not bowled must be entered as zero; the program
will then request entry of blind scores. Four scores must be
entered on each line. The example below shows how the scores
would be entered for a bowler who missed the first 2 games. The
blind score is entered manually and can therefore be a constant
score which is league determined, average, average less 10 pins,
or any other appropriate score.
e.g. GAM1 GAM2 GAM3 SER
---- ---- ---- ---
0 0 175 175 Bowler's actual score
164 164 0 328 Avg less 10 pins
In the example above, the scratch score posted to the
bowler's record is a 175 series (1 game), while the team score is
posted as a 503 series.
Substitutes are indicated by entering 999 as the first game
score. The system will mark the regular bowlers record as absent
and retrieve and display the sub name for verrification. Subs are
identified by their bowler ID. If you mis-key and get the wrong
sub record, simply enter 999 in the first game again to restart.
In posting scores, you will actually be interactively
building a copy of the score sheet on the screen. Game scores are
totaled and compared to the series. If out of balance, the system
will prompt you to reenter. **NOTE** - When entering scores on
this screen, you must depress the enter key after each one. It is
not necessary to separate the scores with commas.
At the end of each team, you are allowed to enter team
handicap (per game), as well as points won. The system requires
verrification (enter "y" or "n") before you may proceed.
In addition to updating the master files, the SCORES program
also creates the HISCORES.DET file for later processing by RECAP.
.EJECT
2. RECAP - This program sorts the results and prints the
weekly standings sheet. The first line contains the Name of the
bowling establishment; this field has not been parameterized and
you must make the appropriate change in the source program at line
number 340. System date (DATE$) is used on this line also, so you
should set the appropriate date in DOS prior to running this
program.
Prior to printing high individual and team scores, the system
will prompt for the number of lines desired. You may print as
many or as few as your league wants - 3 or 4 is a suggested value
here. Up to eight special message lines may be entered for League
News or other special items.
The last processing step prompts for the next bowling date (MM,DD)
and uses this to search the SCHEDULE.DET file to locate the
records for the next three bowling dates, which are then printed
on the standings sheet. A sample output is attached.
C - Reporting Programs
1. RECORDD - This program permits display of team and bowler
detail record sheets. Individual sheets can by printed with the
PrtSc key.
2. RECORDP - Prints all team and bowler record sheets. It
is primarily intended to prepare the end of season hard copy for
filing.
3. SORTFILE - Prints the alphabetic "Book Average" listing
for submission to ABC/WIBC each April.
4. FINAL - Prints the Final Standings sheet.
D - Special Utility Programs
The following programs were written to aid during the
program development/testing phase. The user may find them useful
during system modification.
1. PRINT - File dump of TEAMS.HDR and BOWLERS.HDR files.
2. DETAIL - File dump of TEAM.DET and BOWLER.DET files.
.eject
SETUP AND OPERATIONS
1. Program diskette. The system is supplied with an AUTOEXEC.BAT
file which loads BASICA and runs the MENU program. In the
author's system, he has included DOS, BASICA and several DOS
utilities (e.g. DISKCOPY, CHKDSK) on the program diskette. This
enables the system to be IPL'd and loaded automatically. Your own
conventions may call for a different method, but be sure to invoke
BASICA with the following command to accommodate the size and
number of files:
BASICA MENU/F:5/S:512
2. Files Diskette. It is recommended that you dedicate a
separate diskette for files only. The programs are all written to
run on the A disk and access all files on B, although these
references may be easily modified. If you have a very small
league or have the 320kb dirves, you can probably get away with
combining programs and files on one floppy.
3. Initialization of system. To setup the league, you must run
the CREATE and SCHEDULE programs. They are independant of each
other so sequence of execution is of no concern. The CHANGE
program can be run as desired to correct errors, add new bowlers,
or shuffle bowlers around within the league.
4. Weekly Processing. Only two programs (SCORES followed by
RECAP) need to be run each week. Remember to set the system date
to whatever value you want to have printed at the top of the
summary sheet. It is suggested that you print one master copy,
from which xerographic copies can be made for distribution to
league members.
5. Backup. Backup of the files diskette on a regular basis is
highly recommemded. Remember that some fields cannot be accessed
by the CHANGE program and the only way of recovering from file
errors with the supplied code is to recreate the files and post
all the weekly results again. However - if you do not need the
system maintained detail records for teams and bowlers, it is
possible to use the CHANGE program to update total pins, games,
etc. and recover from a lost file more easily. The detail files
are used only to print/display the individual record sheets.